<?php

App::import('Vendor', 'ClassEzpdf', array('file' => 'pdf/class.ezpdf.php'));
$pdf = new Cezpdf('LETTER');
$pdf->ezStartPageNumbers(20, 75, 10, 'right', utf8_decode('Página' . "  {PAGENUM} de {TOTALPAGENUM}"), 1);
generar_carta(' ', "", $pdf);

//Imprimo encabezado
$str = "<b>INSTITUTO COLOMBIANO DE DESARROLLO RURAL- INCODER</b>";
$pdf->ezText(utf8_decode($str), 12, array('justification' => 'center'));
$str = "<b>RECLAMACIÓN</b>";
$pdf->ezText(utf8_decode($str), 12, array('justification' => 'center'));

$str = "\n";
$pdf->ezText($str);

$str = "<b>PROYECTO " . $codigo . "</b>";
$pdf->ezText(utf8_decode($str), 12, array('justification' => 'center'));

$str = "\n";
$pdf->ezText($str);

//Necesario para pasar los datos a las tablas.
$data = array();

$data[] = array('fecha reclamacion' => utf8_decode('<b>Fecha Reclamación</b>'), 'reclamacion' => utf8_decode('<b>Reclamación</b>'));

$data[] = array('fecha reclamacion' => utf8_decode($reclamacion['Claim']['fecha_recibido']), 'reclamacion' => utf8_decode($reclamacion['Claim']['observacion']));

$pdf->ezTable(
        $data, null, null, array(
    'fontSize' => 9,
    'titleFontSize' => 10,
    'width' => 500,
    'showHeadings' => 0,
    'showLines' => 2,
    'shaded' => 0,
    'protectRows' => 0, 	
    'cols' => array('fecha reclamacion' => array('width' => 100, 'justification' => 'full'), 'reclamacion' => array('width' => 400, 'justification' => 'full')),
        )
);

$str = "\n";
$pdf->ezText($str);

//Descargo la información de data
$data = array();

//////////////////////////RECLAMACIONES PROYECTO /////////////////////////////////////

if (!empty($requisitos)) {
    $titulo = utf8_decode("REVISIÓN DE PROYECTO");
    //Creo la primera fila
    $data[] = array('texto' => utf8_decode("<b>Texto</b>"), 'estado fase 1' => utf8_decode("<b>Estado fase 1</b>"), 'calificacion reclamacion' => utf8_decode("<b>Calificación reclamación</b>"));

    foreach ($requisitos as $requisito) {
        $re = "";
        if ($requisito['ProyectRequirement']['calificacion'] == 3) {
            switch ($requisito['ProyectRequirement']['cal_subsanacion']) {
                case 0:
                    $re = "Subsanable, sin Registro";
                    break;
                case 1:
                    //Este caso no debería darse nunca.
                    $re = "Subsanó Cumple";
                    break;
                case 2:
                    $re = "Subsanó No Cumple";
                    break;
                case 3:
                    $re = "No Subsanó";
                    break;
                default:
                    $re = "";
                    break;
            }
        } else if ($requisito['ProyectRequirement']['calificacion'] == 2) {
            $re = "No cumple";
        } else if ($requisito['ProyectRequirement']['calificacion'] == 0) {
            $re = "Sin registro";
        } else if ($requisito['ProyectRequirement']['calificacion'] == 1) {
            //este caso no debería ocurrir.
            $re = "Cumple";
        }

        $data[] = array('texto' => utf8_decode($requisito['Requirement']['texto']), 'estado fase 1' => utf8_decode($re), 'calificacion reclamacion' => utf8_decode($requisito['ProyectRequirementClaim']['calificacion']));

        //Configuro y genero la tabla.
        $pdf->ezTable(
                $data, null, $titulo, array(
            'fontSize' => 8,
            'titleFontSize' => 12,
            'width' => 500,
            'showHeadings' => 0,
            'showLines' => 2,
            'shaded' => 0,
            'cols' => array('texto' => array('width' => 100), 'estado fase 1' => array('width' => 200), 'calificacion reclamacion' => array('width' => 200)),
                )
        );

        $titulo = null;

        $data = array();
        $data[] = array('1' => 'Concepto', 'concepto' => utf8_decode($requisito['ProyectRequirementClaim']['concepto']));

        //Configuro y genero la tabla.
        $pdf->ezTable(
                $data, null, null, array(
            'fontSize' => 8,
            'titleFontSize' => 12,
            'width' => 500,
            'showHeadings' => 0,
            'showLines' => 2,
            'shaded' => 0,
            'cols' => array('1' => array('width' => 100, 'justification' => 'full'), 'concepto' => array('width' => 400, 'justification' => 'full')),
                )
        );
        $data = array();
    }


//Imprimo espacios
    $str = "\n";
    $pdf->ezText($str);

//Descargo la información de data
    $data = array();
}

//////////////////////////RECLAMACIONES ASPIRANTES /////////////////////////////////////
if (!empty($requisitos1)) {
    //Creo la primera fila

    $titulo = utf8_decode("REVISIÓN DE ASPIRANTES");
    $data[] = array('documento' => utf8_decode("<b>Documento</b>"), 'nombre' => utf8_decode("<b>Nombre</b>"), 'texto' => utf8_decode("<b>Texto</b>"), 'estado fase 1' => utf8_decode("<b>Estado fase 1</b>"), 'calificacion reclamacion' => utf8_decode("<b>Calificación Reclamación</b>"));

    foreach ($requisitos1 as $requisito1) {

        $re = "Sin Registro";
        if ($requisito1['CandidateRequirement']['calificacion'] == 3) {
            switch ($requisito1['CandidateRequirement']['cal_subsanacion']) {
                case 0:
                    $re = "Sin Registro";
                    break;
                case 1:
                    //Este caso no debería darse.
                    $re = "Subsanó Cumple";
                    break;
                case 2:
                    $re = "Subsanó No Cumple";
                    break;
                case 3:
                    $re = "No Subsanó";
                    break;
                default:
                    $re = "";
                    break;
            }
        } else if ($requisito1['CandidateRequirement']['calificacion'] == 2) {
            $re = "No cumple";
        } else if ($requisito1['CandidateRequirement']['calificacion'] == 0) {
            $re = "Sin registro";
        } else if ($requisito1['CandidateRequirement']['calificacion'] == 1) {
            //este caso no debería ocurrir.
            $re = "Cumple";
        }

        $data[] = array('documento' => $requisito1['Candidate']['nro_ident'], 'nombre' => utf8_decode($requisito1['Candidate']['1er_nombre'] . " " . $requisito1['Candidate']['1er_apellido']), 'texto' => utf8_decode($requisito1['Requirement']['texto']), 'estado fase 1' => utf8_decode($re), 'calificacion reclamacion' => utf8_decode($requisito1['CandidateRequirementClaim']['calificacion']));

        //Configuro y genero la tabla.
        $pdf->ezTable(
                $data, null, $titulo, array(
            'fontSize' => 8,
            'titleFontSize' => 12,
            'width' => 500,
            'showHeadings' => 0,
            'showLines' => 2,
            'shaded' => 0,
            'cols' => array('documento' => array('width' => 70), 'nombre' => array('width' => 145), 'texto' => array('width' => 145), 'estado fase 1' => array('width' => 70), 'calificacion reclamacion' => array('width' => 70)),
                )
        );
        $titulo = null;
        $data = array();
        $data[] = array('1' => 'Concepto', 'concepto' => utf8_decode($requisito1['CandidateRequirementClaim']['concepto']));

        //Configuro y genero la tabla.
        $pdf->ezTable(
                $data, null, null, array(
            'fontSize' => 8,
            'titleFontSize' => 12,
            'width' => 500,
            'showHeadings' => 0,
            'showLines' => 2,
            'shaded' => 0,
            'cols' => array('1' => array('width' => 70, 'justification' => 'full'), 'concepto' => array('width' => 430, 'justification' => 'full')),
                )
        );
        $data = array();
    }


//Imprimo espacios
    $str = "\n";
    $pdf->ezText($str);

//Descargo la información de data
    $data = array();
}

//////////////////////////RECLAMACIONES PREDIOS ////////////////////////
if (!empty($requisitos2)) {
    $titulo = utf8_decode("REVISIÓN DE PREDIOS");
    //Creo la primera fila
    $data[] = array('codigo' => utf8_decode("<b>Código</b>"), 'texto' => utf8_decode("<b>Texto</b>"), 'estado fase 1' => utf8_decode("<b>Estado fase 1</b>"), 'calificacion reclamacion' => utf8_decode("<b>Calificación Reclamación</b>"));

    foreach ($requisitos2 as $requisito2) {
        $re = "Sin Registro";
        if ($requisito2['PropertyRequirement']['calificacion'] == 3) {
            switch ($requisito2['PropertyRequirement']['cal_subsanacion']) {
                case 0:
                    $re = "Sin Registro";
                    break;
                case 1:
                    $re = "Subsanó Cumple";
                    break;
                case 2:
                    //Este caso no debería darse.
                    $re = "Subsanó No Cumple";
                    break;
                case 3:
                    $re = "No Subsanó";
                    break;
                default:
                    $re = "";
                    break;
            }
        } else if ($requisito2['PropertyRequirement']['calificacion'] == 2) {
            $re = "No cumple";
        } else if ($requisito2['PropertyRequirement']['calificacion'] == 0) {
            $re = "Sin registro";
        } else if ($requisito2['PropertyRequirement']['calificacion'] == 1) {
            //este caso no debería ocurrir.
            $re = "Cumple";
        }

        $data[] = array('codigo' => utf8_decode($requisito2['Property']['codigo']), 'texto' => utf8_decode($requisito2['Requirement']['texto']), 'estado fase 1' => utf8_decode($re), 'calificacion reclamacion' => utf8_decode($requisito2['PropertyRequirementClaim']['calificacion']));

        //Configuro y genero la tabla.
        $pdf->ezTable(
                $data, null, $titulo, array(
            'fontSize' => 8,
            'titleFontSize' => 12,
            'width' => 500,
            'showHeadings' => 0,
            'showLines' => 2,
            'shaded' => 0,
            'cols' => array('codigo' => array('width' => 100), 'texto' => array('width' => 200), 'estado fase 1' => array('width' => 100), 'calificacion reclamacion' => array('width' => 100)),
                )
        );
        $titulo = null;
        $data = array();
        $data[] = array('1' => 'Concepto', 'concepto' => utf8_decode($requisito2['PropertyRequirementClaim']['concepto']));

        //Configuro y genero la tabla.
        $pdf->ezTable(
                $data, null, null, array(
            'fontSize' => 8,
            'titleFontSize' => 12,
            'width' => 500,
            'showHeadings' => 0,
            'showLines' => 2,
            'shaded' => 0,
            'cols' => array('1' => array('width' => 100, 'justification' => 'full'), 'concepto' => array('width' => 400, 'justification' => 'full')),
                )
        );
        $data = array();
    }

//Imprimo espacios
    $str = "\n";
    $pdf->ezText($str);

//Descargo la información de data
    $data = array();
}

//////////////////////////RECLAMACIONES ESTUDIOS DE TITULO /////////////////////
if (!empty($titulos)) {
    $encabezado = utf8_decode("REVISIÓN DE ESTUDIOS DE TÍTULO");
    //Creo la primera fila
    $data[] = array('predio' => utf8_decode("<b>Predio</b>"), 'concepto' => utf8_decode("<b>Concepto</b>"), 'calificacion' => utf8_decode("<b>Calificación</b>"), 'calificacion reclamacion' => utf8_decode("<b>Calificación Reclamación</b>"), 'concepto reclamacion' => utf8_decode("<b>Concepto Reclamación</b>"));

    foreach ($titulos as $titulo) {
        $re = "";
        if ($titulo['TitleStudy']['calificacion'] == 2) {
            $re = "No cumple";
        } else if ($titulo['TitleStudy']['calificacion'] == 0) {
            $re = "Sin registro";
        }
        $data[] = array('predio' => utf8_decode($titulo['Property']['codigo']), 'concepto' => utf8_decode($titulo['TitleStudy']['concepto']), 'calificacion' => utf8_decode($re), 'calificacion reclamacion' => utf8_decode($titulo['TitleStudyClaim']['calificacion']), 'concepto reclamacion' => utf8_decode($titulo['TitleStudyClaim']['concepto']));

        //Configuro y genero la tabla.
        $pdf->ezTable(
                $data, null, $encabezado, array(
            'fontSize' => 8,
            'titleFontSize' => 12,
            'width' => 500,
            'showHeadings' => 0,
            'showLines' => 2,
            'shaded' => 0,
            'cols' => array('predio' => array('width' => 50), 'concepto' => array('width' => 175), 'calificacion' => array('width' => 50), 'calificacion reclamacion' => array('width' => 50), 'concepto reclamacion' => array('width' => 175)),
                )
        );

        $encabezado = null;
        $data = array();
        $data[] = array('1' => 'Concepto', 'concepto' => utf8_decode($titulo['TitleStudyClaim']['concepto']));

        //Configuro y genero la tabla.
        $pdf->ezTable(
                $data, null, null, array(
            'fontSize' => 8,
            'titleFontSize' => 12,
            'width' => 500,
            'showHeadings' => 0,
            'showLines' => 2,
            'shaded' => 0,
            'cols' => array('1' => array('width' => 50), 'concepto' => array('width' => 450)),
                )
        );
        $data = array();
    }

//Imprimo espacios
    $str = "\n";
    $pdf->ezText($str);

//Descargo la información de data
    $data = array();
}

//////////////////////////CALIFICACIÓN  /////////////////////
//Creo la primera fila

$data[] = array('1' => utf8_decode("<b>Calificación</b>"), '2' => utf8_decode($reclamacion['Claim']['calificacion']));

$data[] = array('1' => utf8_decode("<b>Decisión</b>"), '2' => utf8_decode($reclamacion['Claim']['decision']));

//Configuro y genero la tabla.
$pdf->ezTable(
        $data, null, utf8_decode("CALIFICACIÓN"), array(
    'fontSize' => 8,
    'titleFontSize' => 12,
    'width' => 500,
    'showHeadings' => 0,
    'showLines' => 2,
    'shaded' => 0
        )
);
//Imprimo espacios
$str = "\n";
$pdf->ezText($str);

$pdf->ezStopPageNumbers(1, 1, 0);
$pdf->ezStream();
?>

<?php

function generar_carta($cod, $str, &$pdf, $start=true, $m_left=2.5, $m_right=2.5) {
    App::import('Vendor', 'ClassEzpdf', array('file' => 'pdf/class.ezpdf.php'));
    if ($pdf == NULL) {
        $pdf = new Cezpdf('LETTER');
    }
    if ($start) {
        $tmp = array(
            'b' => 'Trebuchet-Bold.afm'
            , 'i' => 'Trebuchet-Italic.afm'
            , 'bi' => 'Trebuchet-BoldItalic.afm'
            , 'ib' => 'Trebuchet-BoldItalic.afm'
            , 'bb' => 'Trebuchet-Bold.afm'
        );
        $pdf->setFontFamily('Trebuchet.afm', $tmp);
        $pdf->selectFont('fonts/Trebuchet.afm');

        //$pdf->ezSetCmMargins(5.5,5.5,4,4);

        $all = $pdf->openObject();
        $pdf->saveState();
        $pdf->addPngFromFile('img/cabecera.png', 60, 670, 500);
        $pdf->addPngFromFile('img/pie_de_pagina1.png', 100, 60, 550, 60);
        $pdf->addPngFromFile('img/pie_de_pagina.png', 0, 0, 610, 60);
        $pdf->restoreState();
        $pdf->closeObject();
        $pdf->addObject($all, 'all');
        $pdf->transaction('start');
    }

    $pdf->ezSetCmMargins(4.5, 5, $m_left, $m_right);

    $textOptions = array('justification' => 'full');
    $data = explode("\n", $str);
    $collecting = 0;
    foreach ($data as $d) {
        chop($d);
        if (strlen($d) && $d[0] == '#') {
            // comment, or new page request
            switch ($d) {
                case '#NP':
                    $pdf->ezNewPage();
                    break;
            }
        } else {
            $pdf->ezText($d, 8, $textOptions);
        }
    }
}
?>
